import { apiClient } from 'axiom-view';

/**
 * 获取角色列表（分页）
 * @param {object} params - 查询参数，例如 { page: 1, page_size: 20 }
 * @returns {Promise}
 */
export function getRoleList(params) {
  return apiClient.get('/system/roles', { params });
}

/**
 * 新增角色
 * @param {object} data - 角色数据，符合 RoleCreateDTO
 * @returns {Promise}
 */
export function createRole(data) {
  return apiClient.post('/system/roles', data);
}

/**
 * 修改角色信息
 * @param {string} roleId - 角色ID
 * @param {object} data - 角色数据，符合 RoleUpdateDTO
 * @returns {Promise}
 */
export function updateRole(roleId, data) {
  return apiClient.put(`/system/roles/${roleId}`, data);
}

/**
 * 删除角色
 * @param {string} roleId - 角色ID
 * @returns {Promise}
 */
export function deleteRole(roleId) {
  return apiClient.delete(`/system/roles/${roleId}`);
}

/**
 * 为角色分配权限
 * @param {string} roleId - 角色ID
 * @param {string[]} permissionIds - 权限ID列表
 * @returns {Promise}
 */
export function assignPermissionsToRole(roleId, permissionIds) {
  return apiClient.post(`/system/roles/${roleId}/assign-permissions`, { permission_ids: permissionIds });
}

/**
 * 获取单个角色详情 (包含权限ID)
 * @param {string} roleId - 角色ID
 * @returns {Promise}
 */
export function getRoleDetails(roleId) {
  return apiClient.get(`/system/roles/${roleId}`);
}

/**
 * 获取角色树（扁平列表）
 * @returns {Promise}
 */
export function getRoleTree() {
  return apiClient.get('/system/roles/list');
}

/**
 * 启用角色
 * @param {string} roleId - 角色ID
 * @returns {Promise}
 */
export function enableRole(roleId) {
  return apiClient.put(`/system/roles/${roleId}/enable`);
}

/**
 * 禁用角色
 * @param {string} roleId - 角色ID
 * @returns {Promise}
 */
export function disableRole(roleId) {
  return apiClient.put(`/system/roles/${roleId}/disable`);
}

/**
 * 批量删除角色
 * @param {string[]} roleIds - 角色ID列表
 * @returns {Promise}
 */
export function batchDeleteRoles(roleIds) {
  return apiClient.delete('/system/roles', { data: { ids: roleIds } });
} 